package cn.koala.key.entity;

import cn.koala.key.common.utils.OrderNoGenerator;
import cn.koala.key.entity.enums.OrderTypeEnum;
import cn.koala.key.entity.enums.StockInOutEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

@ApiModel(value="借用单")
public class BorrowOrder {
    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private Long id;

    /**
     * 借用单号
     */
    @ApiModelProperty("借用单号")
    private String orderNo;

    /**
     * 借用的单位-门店ID
     */
    @ApiModelProperty("借用的单位-门店ID")
    @NotNull(message="borrow_store_id参数不能为空")
    private Integer borrowStoreId;

    /**
     * 借用的门店名称（企业名称）
     */
    @ApiModelProperty("借用的门店名称（企业名称）")
    @NotNull(message="borrow_store_name参数不能为空")
    private String borrowStoreName;

    /**
     * 车架号
     */
    @ApiModelProperty("车架号")
    @NotNull(message="car_vin参数不能为空")
    @Size(max=32,min=0,message="car_vin长度超过")
    private String carVin;

    /**
     * 借用来源 1-门店、2-企业
     */
    @ApiModelProperty("借用来源 1-一嗨门店、2-企业、3-考拉门店")
    @NotNull(message="borrow_source参数不能为空")
    private Integer borrowSource;

    /**
     * 借用类型 1-短期、2-长期
     */
    @ApiModelProperty("借用类型 1-短期、2-长期")
    @NotNull(message="borrow_type参数不能为空")
    private Integer borrowType;

    /**
     * 提交时间
     */
    @ApiModelProperty("提交时间")
    @NotNull(message="submission_time参数不能为空")
    private Date submissionTime;

    /**
     * 车牌号
     */
    @ApiModelProperty("车牌号")
    @NotNull(message="car_no参数不能为空")
    @Size(max=10,min=0,message="car_no长度超过")
    private String carNo;

    /**
     * 操作人工号
     */
    @ApiModelProperty("操作人工号")
    @NotNull(message="operator参数不能为空")
    @Size(max=5,min=0,message="operator长度超过")
    private String operator;

    /**
     * 钥匙数量
     */
    @ApiModelProperty("钥匙数量")
    @NotNull(message="key_count参数不能为空")
    private Integer keyCount;

    /**
     * 订单状态 1-未提交、2-未审核、3-已审核、4-未确认、5-已拒绝、6-已借出、7-归还中、8-已完成、9-已作废
     */
    @ApiModelProperty("订单状态 1-未提交 / 2-未审核 / 3-已审核 / 4-未确认 / 5-已拒绝 / 6-已借出 / 7-归还中 / 8-已完成 / 9-已作废")
    private Integer orderStatus;

    /**
     * 主动创建时间
     */
    @ApiModelProperty("主动创建时间")
    private Date gmtCreate;

    /**
     * 被动更新时间
     */
    @ApiModelProperty("被动更新时间")
    private Date gmtModified;

    @ApiModelProperty("城市id")
    @NotNull(message="cityId 参数不能为空")
    private Integer cityId;

    @ApiModelProperty("城市名称")
    @NotNull(message="cityName 参数不能为空")
    private String cityName;

    @ApiModelProperty("备注")
    private String remark;

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getCityId() {
        return cityId;
    }

    public void setCityId(Integer cityId) {
        this.cityId = cityId;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Integer getBorrowStoreId() {
        return borrowStoreId;
    }

    public void setBorrowStoreId(Integer borrowStoreId) {
        this.borrowStoreId = borrowStoreId;
    }

    public String getBorrowStoreName() {
        return borrowStoreName;
    }

    public void setBorrowStoreName(String borrowStoreName) {
        this.borrowStoreName = borrowStoreName;
    }

    public String getCarVin() {
        return carVin;
    }

    public void setCarVin(String carVin) {
        this.carVin = carVin;
    }

    public Integer getBorrowSource() {
        return borrowSource;
    }

    public void setBorrowSource(Integer borrowSource) {
        this.borrowSource = borrowSource;
    }

    public Integer getBorrowType() {
        return borrowType;
    }

    public void setBorrowType(Integer borrowType) {
        this.borrowType = borrowType;
    }

    public Date getSubmissionTime() {
        return submissionTime;
    }

    public void setSubmissionTime(Date submissionTime) {
        this.submissionTime = submissionTime;
    }

    public String getCarNo() {
        return carNo;
    }

    public void setCarNo(String carNo) {
        this.carNo = carNo;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public Integer getKeyCount() {
        return keyCount;
    }

    public void setKeyCount(Integer keyCount) {
        this.keyCount = keyCount;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }
}